Electronic spreadsheets for organizing and creating multidimensional arrays of financial information are widely employed. Typically, an electronic spreadsheet displays a table of cells arranged into rows and columns, with each cell containing associated numeric data that can be readily modified by a user. The user can define various mathematical or logical relationships (commonly known as "functions" or "formulas") between each cell, or rows and columns of cells, forming a constraint graph that limits possible cell content. For example, Cell (C) can be constrained to display the additive product of Cell (A) and Cell (B), making Cell (C) have a displayed value of 7 if Cell (A) displays a value of 3 and Cell (B) displays a value of 4. If a user changes the value of Cell (A) from 3 to 5, the displayed value of Cell (C) is recalculated, changing to 9 in accordance with the constraint graph formula Cell (C)=Cell (A)+Cell (B).
Typically the displayed layout of the spreadsheet provides cues about the underlying formulas and structure of the constraint graph, with adjacent cells often being additively or subtractively related as is standard practice for conventional paper based accounting spreadsheets. However, for certain applications it is often desirable to define complex constraint graphs that do not have a simple tabular layout. To understand such spreadsheets, substantial annotation is required, or users must explore the individual cells of the spreadsheet to find and read the cell formulas that together form the spreadsheet constraint graph. Unfortunately, this is a cognitively difficult task when available layout cues mislead a user, the spreadsheet is large, or the intercell relationships and~formulas forming the constraint graph are complex.
As will be appreciated, various attempts have been made to enhance explanatory power of a spreadsheet. For example, Excel 97 .TM., a spreadsheet available from Microsoft Corp., can provide a limited visualization of the constraint graph for a given cell. When a cell is selected with a mouse cursor, its corresponding formula is displayed in a separate "formula bar". When the formula bar is clicked, the cells that take part in the formula are highlighted with a colored border. The color of the cell border is matched with the color of the cell reference in the formula. These color rectangles can be moved and adjusted to edit the corresponding formula. However, Microsoft Excel 97 .TM. can only show the incoming constraints for a single cell at one time. To look at the relationships for another cell, you must click on the new cell, at which time the former cell's constraints become invisible.
What is needed are methods for effectively displaying additional constraint graph information for spreadsheets. Such constraint graph information can include static presentations, animated presentation, or presentations based on various coloration or shading techniques. Accordingly, the present invention provides a method for dynamically presenting both a primary body of data displayable on a screen and constraint data that in part defines the primary body of data. When a region of user focus is selected in the primary body of data, additional constraint data is dynamically displayed (as long as user focus is maintained) and individual data elements present in the primary body of data are concurrently modified to enhance presentation of the constraint data. When user focus changes, the presentation of constraint data can lapse, with the primary body of data reverting to its original display format.
As will be appreciated, the primary body of data subject to constraint is typically numeric, while constraint data can be primarily textual, primarily graphical, or some mixture of textual and graphical elements. Typically, the constraint data is transiently invoked by selecting (with mouse or keyboard cursor) a particular cell of a spreadsheet as a user focus, with relevant constraint data or data flow paths being statically or dynamically generated to augment the displayed spreadsheet. In certain applications, the cell layout, text size, or other spatial characteristics of the primary body of data can be adjusted to accommodate newly presented constraint data. Alternatively, cells can be gradient colored to indicate data. The appropriated user focus can be determined by tracking the position of conventional screen displayed mouse or keyboard controlled pointers, by use of touch sensitive overlays to a screen, eye or head tracking systems, or any other conventional mechanism for reliably determining a region of a screen display. Initiating dynamic display of supporting constraint data at the user focus can be in response to user initiated mouse clicks, keyboard input, finger taps, duration (e.g. mouse cursor held still on or adjacent to an annotation tag for greater than two seconds), or any other suitable input scheme for confirming a user desire to view supporting bodies of data.
In addition to color coding, animations, lines, or other graphical elements, supplementary information related to the primary body of data can be presented by addition of various annotation tags. Contemplated annotation tags include numeric formulas positioned in a corner of a cell, greeked or unreadably small interlinear or marginal text, symbols (e.g. an asterisk) or thumbnail graphics or drawings in the margin. In certain preferred applications, the annotation tags can be very small, yet still readable, spreadsheet constraint formulas. In other applications, lines, curves, or graphical or textual animations can allow a user reviewing a primary body of data to identify the availability of supporting data. While typically a visual cue, in certain applications the annotation tag can be visually imperceptible to the user until a pointer or other indicator of user focus is directed at a region about the annotation tag. In certain applications, annotation tags can be based on auditory or tactile feedback, with, for example, sound, operation of force feedback mice, or tactile displays providing audio or tactile annotations.
For best results, accommodating annotations or constraint data requires "negotiations" with the primary body of data to determine suitable adjustments to position, orientation, sizing, coloring, or other typographical or graphical characteristics of the primary body of data. Negotiated accommodation overcomes a major problem associated with conventional hypertext window or "balloon help" techniques. Such annotation techniques simply overlay a small graphic or window over a primary body of data, often covering necessary information in the primary body of data. In contrast, the present invention conducts a negotiation between the primary body of data and the annotation or constraint data to determine how the primary body of data, the annotation, or the constraint data can be positioned, moved, resized, or otherwise altered to best retain a user view of salient portions of the primary body of data, while still allowing viewing of the constraint data.
Accommodation of the constraint data or presentation of annotations on the spreadsheet can be through overlay or spatial morphing of the primary body of data. An overlay presentation identifies the annotated region of the primary body by suitable callouts, lines, markers, or animations that place the annotation in the margin, interline, or interparagraph region, but still direct a user's attention to the related region of the primary body. Alternatively, the region of the primary body subject to annotation can be identified by a color or font change. This allows, for example, a specific region of the primary body to be "grayed out" or faded, with the supporting data of the annotation positioned to lay on top of the grayed out region. Overlay presentations generally do not require repositioning cells or graphical elements in the spreadsheet, instead relying on available spaces (e.g. either "empty" marginal space or space created by "graying out" text) in the spreadsheet.
In contrast, spatial morphing of the primary body of data generally requires displacement or differential resizing of lines and words in a vicinity of an annotation tag subject to user focus. The position of words, lines, paragraphs, or graphical elements in the primary body of data adjust (using an animated transition) as needed to accommodate the constraint data. This allows constraint data or annotations to be presented at full readable size, while still retaining the context of the primary body of data. This may include dynamically decreasing typesize of lines in the region near the annotation tag, intraline or interline intercalations of auxiliary symbols, words, or sentences. Numbers, words, lines, paragraphs, graphical elements, spreadsheet cells, or margins can be moved to make room for constraint data and the annotations.
As those skilled in the art will appreciate, methods of the present invention can be employed to aid in creating or modifying a constraint graph or the primary body of data, or creating various marginal notes, interlineations, graphics, handwriting, and other suitable annotations to the spreadsheet that would enhance user understanding of the spreadsheet structure. A primary body of data is displayable on a screen, permitting a user to select a region of user focus for annotation. Using a keyboard, pen operated touchpad, voice control software, or other suitable input device, the user provides supporting data input for association with the region of user focus. To aid in creating the annotation or modifying constraint data, the screen displayed body of primary data is modified to present user modifiable constraint data. Modification can include overlay type presentations in which the area to be annotated (i.e. associated with the supporting body of data input by the user) is highlighted or grayed out, or alternatively, can include spatial morphing presentation techniques in which lines of the primary body of data are moved to accommodate positioning of textual or handwriting input.